
package com.feib.soeasy.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.transaction.annotation.Transactional;

import com.feib.soeasy.model.Group;
import com.feib.soeasy.pagination.PaginatedList;


/**
 * @title (#)Soez5008Service.java<br>
 * @description <br>
 * @author Jimmy Liu<br>
 * @version 1.0.0 2010/11/25
 * @copyright Far Eastern International Bank Copyright (c) 2010<br>
 * @2011/3/14 create by Jimmy Liu<br>
 */
@Transactional(readOnly = true)
public interface Soez5008Service {


	/**
	 * @param group
	 * @param qryDateType 資料期間基礎：1: 傳輸日期  2:實際繳款日。
	 * @param dateFrom
	 * @param dateTo
	 * @return
	 */
	//    public Map<String,Map<String,List<Map<String, Object>>>> queryForStatisticsList(Group group, Integer qryDateType, Date dateFrom, Date dateTo);

	/**
	 * @param group
	 * @param qryType
	 * @param dateFrom
	 * @param dateTo
	 */
	public String doExportStatisticsXls(String[] channels, Date[] dateFroms, Date[] dateTos);




	/**
	 * @param group
	 * @param qryType
	 * @param dateFrom
	 * @param dateTo
	 * @return
	 */
	//public String doExportStatisticsHtml(Group group, Integer qryType, Date dateFrom, Date dateTo);

	//2011.12 by Leo
	//	public List queryStatisticsByGroup(Group group, Date qryDateFrom, Date qryDateTo);

	public String doExportStatisticsHtml(String[] channels, Date[] dateFroms , Date[] dateTos);

	//	public List queryStaticsByChainstoreData(String channel,
	//			Date qryDateFrom, Date qryDateTo,String commissionCode, List commissionCodes);

	public List queryFeedbackLogByChannelCommission(String channel, String commissionCode, Date qryDateFrom, Date qryDateTo);

	//public String doExportStatisticsByGroupXls(Group group, Date qryDateFrom, Date qryDateTo);

	public String doAjaxQueryCommissionCodeXls(String channel, String commissionCode,
			Date qryDateFrom, Date qryDateTo);

	/**
	 * 根據通路 代碼 跟日期 取得  顯示畫面 (可分群組)
	 * @author Jeff
	 */
	public String doExportGroupStatisticsHtml(Group group,String[] channels, Date[] dateFroms , Date[] dateTos);

	/**
	 * 根據通路 代碼 跟日期 取得  顯示畫面excel (可分群組)
	 * @author Jeff
	 */
	public String doExportGroupStatisticsXls(Group group,String[] channels, Date[] dateFroms, Date[] dateTos);


	/**
	 * 根據通路 代碼 跟日期 取得  FeedbackLog (可分群組)
	 * @author Jeff
	 */
	//public PaginatedList<Map<String, Object>> queryGroupFeedbackLogByChannelCommission(Group group,String channel, String commissionCode, Date qryDateFrom, Date qryDateTo);


	/**
	 * 根據通路跟日期 取得  FeedbackLog (可分群組)
	 * @author Jeff
	 */
	public List<Map<String, Object>> queryGroupFeedbackLog(Group group,String channel, String code, Date qryDateFrom, Date qryDateTo);

	/**
	 * 根據通路跟日期 取得  CommissionCodes (可分群組)
	 * @author Jeff
	 */
	public List<String> queryGroupCommissionCodes(Group group,String channel, Date qryDateFrom, Date qryDateTo);

	public PaginatedList<Map<String, Object>> queryGroupFeedbackLogByChannelCommission(
			Group group, String channel, String commissionCode,
			Date qryDateFrom, Date qryDateTo,PaginatedList<Map<String, Object>> paginationConfig);
	
	
	/**
	 * 取得各通路總計FeedbackLog 明細
	 * @author Jeff 
	 * */		
	public PaginatedList<Map<String, Object>> queryGroupFeedbackLogByChannel(Group group, String channels[],
			Date dateFroms[], Date dateTos[],PaginatedList<Map<String, Object>> paginationConfig) ;

}
